Skip to content

Comments

Update TS SDK to 1.15.0#758

Merged
mjameswh merged 12 commits intomainfrom
typescript-1.15.0
Feb 23, 2026
Merged

Update TS SDK to 1.15.0#758
mjameswh merged 12 commits intomainfrom
typescript-1.15.0

Conversation

@mjameswh
Copy link
Contributor

@mjameswh mjameswh commented Feb 18, 2026

What changed

  • Update TS SDK to 1.15.0
  • Update Node, TypeScript, eslint, and more, to match now-preferred TS SDK's setup

@mjameswh mjameswh requested a review from a team as a code owner February 18, 2026 19:29
@mjameswh mjameswh requested a review from a team February 18, 2026 22:20
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request updates the TypeScript SDK from version 1.11.8 to 1.15.0, along with related tooling updates including TypeScript 5.9.3, Node.js 24, and ESLint 9 with a new flat configuration format. The changes include necessary code style updates to comply with the new linting rules and type changes required by the SDK upgrade.

Changes:

  • Updated all @temporalio packages from 1.11.8 to 1.15.0
  • Migrated from ESLint 7 (.eslintrc) to ESLint 9 (flat config with eslint.config.mjs)
  • Updated TypeScript from 5.8.3 to 5.9.3, Node.js from 16 to 24, and related tooling
  • Applied code style fixes including strict equality operators (=== instead of ==), import ordering, and trailing commas
  • Updated TLS configuration to use Uint8Array instead of Buffer
  • Changed feature loading from synchronous require() to async import()
  • Added ReplaceNested utility type for type-safe serialization in http_proxy features

Reviewed changes

Copilot reviewed 41 out of 44 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
package.json Updated all @temporalio dependencies to 1.15.0, upgraded dev dependencies including ESLint, TypeScript, and related tooling
tsconfig.json Updated to extend @tsconfig/node24 and TypeScript version 5.9.3, removed trailing newline
sdkbuild/typescript.go Updated TypeScript and Node dependencies in generated package.json
eslint.config.mjs New ESLint 9 flat config with comprehensive rules including import ordering, strict equality, and TypeScript-specific rules
.eslintrc Removed old ESLint configuration file
.github/workflows/typescript.yaml Updated Node.js version from 18 to 24
.gitignore Added features.sln to ignore .NET solution files
harness/ts/type-helpers.ts Added ReplaceNested utility type for nested type replacement
harness/ts/main.ts Reordered imports, wrapped TLS certificate buffers in Uint8Array
harness/ts/harness.ts Reordered imports, changed loadFeature to async with dynamic import(), added ReplaceNested export, updated trailing commas
harness/ts/activity-interceptors.ts Reformatted constructor parameters with proper line breaks
features/client/http_proxy_auth/feature.ts Added ReplaceNested type usage, improved TLS serialization handling including serverNameOverride and serverRootCACertificate
features/client/http_proxy/feature.ts Added ReplaceNested type usage, updated TLS serialization with Uint8Array conversion
features/update/*/feature.ts Applied import reordering and strict equality operators
features/signal/*/feature.ts Applied import reordering and strict equality operators
features/schedule/*/feature.ts Applied import reordering and strict equality operators
features/query/*/feature.ts Applied import reordering
features/data_converter/*/feature.ts Applied import reordering, strict equality, unused variable naming convention
features/continue_as_new/continue_as_same/feature.ts Applied strict equality operators
features/child_workflow/result/feature.ts Applied import reordering
features/activity/*/feature.ts Applied import reordering, strict equality, removed empty function eslint disables

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 41 out of 44 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 41 out of 44 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 58 to 66
const child = fork(__filename, {
env: {
...process.env,
grpc_proxy: proxyUrl,
subprocess_opts: JSON.stringify(subprocessOpts),
},
execArgv: ['-r', 'tsconfig-paths/register', __filename],
});
child.on('exit', (code) => {
Copy link

Copilot AI Feb 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fork(__filename, { execArgv: ['-r', 'tsconfig-paths/register', __filename] }) passes __filename as a Node exec argument, which makes the child process treat it as the script to execute and leaves the modulePath passed to fork as a normal argv value. This is brittle/confusing and can break if the module path ever changes. Drop __filename from execArgv and, if you need to pass extra args, use the args parameter to fork.

Copilot uses AI. Check for mistakes.
Comment on lines 63 to 71
const child = fork(__filename, {
env: {
...process.env,
grpc_proxy: proxyUrl,
subprocess_opts: JSON.stringify(subprocessOpts),
},
execArgv: ['-r', 'tsconfig-paths/register', __filename],
});
child.on('exit', (code) => {
Copy link

Copilot AI Feb 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fork(__filename, { execArgv: ['-r', 'tsconfig-paths/register', __filename] }) passes __filename as a Node exec argument, which causes the child to execute the script from execArgv instead of the modulePath argument. This is fragile and hard to reason about. Remove __filename from execArgv (keep only the -r tsconfig-paths/register preload) and pass any script arguments via fork’s args array instead.

Copilot uses AI. Check for mistakes.
@mjameswh mjameswh merged commit c109b6c into main Feb 23, 2026
26 checks passed
@mjameswh mjameswh deleted the typescript-1.15.0 branch February 23, 2026 23:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants